namespace Domain.Entities
{
    public class Settings
    {
        private byte id;
        private string boardName;
        private bool allowNewRegistrations;
        private bool accountActivationByEmail;
        private bool accountActivationByAdmin;
        private byte defaultTopicsPerPage;
        private byte defaultMessagesPerPage;
        private string emailFromAddress;
        private string emailFromDisplayName;
        private string emailSmtpHost;
        private int emailSmtpPort;
        private string emailSmtpUsername;
        private string emailSmtpPassword;
        private bool emailEnableSsl;

        private Theme defaultTheme;

        public virtual byte Id
        {
            get { return id; }
            internal set { id = value; }
        }

        public virtual string BoardName
        {
            get { return boardName; }
            internal set { boardName = value; }
        }

        public virtual bool AllowNewRegistrations
        {
            get { return allowNewRegistrations; }
            internal set { allowNewRegistrations = value; }
        }

        public virtual bool AccountActivationByEmail
        {
            get { return accountActivationByEmail; }
            internal set { accountActivationByEmail = value; }
        }

        public virtual bool AccountActivationByAdmin
        {
            get { return accountActivationByAdmin; }
            internal set { accountActivationByAdmin = value; }
        }

        public virtual byte DefaultTopicsPerPage
        {
            get { return defaultTopicsPerPage; }
            internal set { defaultTopicsPerPage = value; }
        }

        public virtual byte DefaultMessagesPerPage
        {
            get { return defaultMessagesPerPage; }
            internal set { defaultMessagesPerPage = value; }
        }

        public virtual string EmailFromAddress
        {
            get { return emailFromAddress; }
            internal set { emailFromAddress = value; }
        }

        public virtual string EmailFromDisplayName
        {
            get { return emailFromDisplayName; }
            internal set { emailFromDisplayName = value; }
        }

        public virtual string EmailSmtpHost
        {
            get { return emailSmtpHost; }
            internal set { emailSmtpHost = value; }
        }

        public virtual int EmailSmtpPort
        {
            get { return emailSmtpPort; }
            internal set { emailSmtpPort = value; }
        }

        public virtual string EmailSmtpUsername
        {
            get { return emailSmtpUsername; }
            internal set { emailSmtpUsername = value; }
        }

        public virtual string EmailSmtpPassword
        {
            get { return emailSmtpPassword; }
            internal set { emailSmtpPassword = value; }
        }

        public virtual bool EmailEnableSsl
        {
            get { return emailEnableSsl; }
            internal set { emailEnableSsl = value; }
        }

        public virtual Theme DefaultTheme
        {
            get { return defaultTheme; }
            internal set { defaultTheme = value; }
        }
    }
}
